package com.yhgm.controller;

import cn.dev33.satoken.context.SaHolder;
import cn.dev33.satoken.sign.SaSignUtil;
import cn.dev33.satoken.util.SaResult;
import com.yhgm.service.impl.AliyunMsgSendServiceImpl;
import com.yhgm.utils.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.concurrent.ExecutionException;

@RestController
@RequestMapping("data")
public class DataSafetyTestController {
    @GetMapping("replayAttack_t")
    public SaResult send(String data) {
        // 1、校验请求中的签名
        try {
            SaSignUtil.checkRequest(SaHolder.getRequest());
        }catch (Exception e){
            return SaResult.error(e.getMessage());
        }
        //业务实现
        return SaResult.ok();
    }

    @GetMapping("sign")
    public SaResult sign(String data) {
        // 1、校验请求中的签名
        // 请求地址
        String url = "http://localhost:88/common/data/replayAttack_t";
        // 请求参数
        Map<String, Object> paramMap = new LinkedHashMap<>();
        paramMap.put("data", "今天答辩啦");
        // 更多参数，不限制数量...
        // 补全 timestamp、nonce、sign 参数，并序列化为 kv 字符串
        String paramStr = SaSignUtil.addSignParamsAndJoin(paramMap);
        // 将参数字符串拼接在请求地址后面
        url += "?" + paramStr;
        // 发送请求
        // 根据返回值做后续处理
        //业务实现
        return SaResult.ok(url);
    }
}
